import {
    IApiGameStartReq, IApiGameStartRes, IApiLoginReq, IApiLoginRes, IApiPlayerCancelReadyReq, IApiPlayerCancelReadyRes, IApiPlayerReadyReq,
    IApiPlayerReadyRes, IApiRoomCreateReq, IApiRoomCreateRes, IApiRoomJoinReq, IApiRoomJoinRes, IApiRoomLeaveReq, IApiRoomLeaveRes,
    IApiRoomListReq, IApiRoomListRes, IApiApplyOfflineLaunchReq, IApiApplyOfflineLaunchRes, ApiMsgEnum, IMsgClientSync, IMsgGameStart,
    IMsgHallSync, IMsgRoomSync, IMsgServerSync, IMsgStateSync, IApiMidJoinGameReq, IApiMidJoinGameRes
} from "../index"


export interface IModel {

    api: {
        [ApiMsgEnum.ApiLogin]: {
            req: IApiLoginReq,
            res: IApiLoginRes,
        },
        [ApiMsgEnum.ApiRoomList]: {
            req: IApiRoomListReq,
            res: IApiRoomListRes,
        },
        [ApiMsgEnum.ApiRoomCreate]: {
            req: IApiRoomCreateReq,
            res: IApiRoomCreateRes,
        },
        [ApiMsgEnum.ApiRoomJoin]: {
            req: IApiRoomJoinReq,
            res: IApiRoomJoinRes,
        },
        [ApiMsgEnum.ApiRoomLeave]: {
            req: IApiRoomLeaveReq,
            res: IApiRoomLeaveRes,
        },
        [ApiMsgEnum.ApiPlayerReady]: {
            req: IApiPlayerReadyReq,
            res: IApiPlayerReadyRes,
        },
        [ApiMsgEnum.ApiPlayerCancelReady]: {
            req: IApiPlayerCancelReadyReq,
            res: IApiPlayerCancelReadyRes,
        },
        [ApiMsgEnum.ApiGameStart]: {
            req: IApiGameStartReq,
            res: IApiGameStartRes,
        },
        [ApiMsgEnum.ApiApplyOfflineLaunch]: {
            req: IApiApplyOfflineLaunchReq,
            res: IApiApplyOfflineLaunchRes,
        },
        [ApiMsgEnum.ApiMidJoinGame]: {
            req: IApiMidJoinGameReq,
            res: IApiMidJoinGameRes,
        },

    }
    msg: {
        [ApiMsgEnum.MsgHallSync]: IMsgHallSync,
        [ApiMsgEnum.MsgRoomSync]: IMsgRoomSync,
        [ApiMsgEnum.MsgGameStart]: IMsgGameStart,
        [ApiMsgEnum.MsgClientSync]: IMsgClientSync,
        [ApiMsgEnum.MsgServerSync]: IMsgServerSync,
        [ApiMsgEnum.MsgStateSync]: IMsgStateSync,

    }

}